#pragma once
#include "VolumeRenderPCH.h"
#include "LoadVolume.h"

class CVolumeObj : public IGameObject
{
public:
	CVolumeObj(const std::string& vGameObjectName, int vExecutionOrder) : IGameObject(vGameObjectName, vExecutionOrder) {}
	~CVolumeObj() = default;

	void initV() override;
	void updateV() override;

	const std::shared_ptr<hiveDVR::CVolume> getPtrOfVolume() const { return m_pVolume; }
	const std::shared_ptr<hiveGraphics::STexture> getVolumeTex() const { return m_pVolumeTex; }

private:
	std::shared_ptr<hiveDVR::CVolume> m_pVolume = std::make_shared<hiveDVR::CVolume>();

	std::shared_ptr<hiveGraphics::STexture> m_pVolumeTex = nullptr;

	std::shared_ptr<hiveGraphics::STexture> __createVolumeTex3D(const std::string& vFilePath);
};